package cn.org.xuanguang.kepler.hormos.rdb.jpa;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import java.sql.JDBCType;

@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
public @interface Column {
    // 列名
    String columnName() default ""; //小写

    // 数据库类型
    String columnType() default "String";

    //jdbc类型
    JDBCType jdbcType() default JDBCType.VARCHAR;

    // 备注
    String comment() default "";

    // 主键
    boolean primaryKey() default false;

    // 是否分区字段
    boolean partitionField() default false; //hive

    // 是否自增
    boolean autoIncrement() default false;

    // 默认值
    String defaultValue() default "";

    // 是否唯一
    boolean unique() default false;

    // 是否可空
    boolean nullable() default true;

    // 列描述
    String columnDefinition() default "";

    // 数值性专用
    int position() default 0;

    // 长度
    int columnLength() default 255;

    // // 精度（总位数）
    int precision() default 0;

    // 精度
    int scale() default 0;
}